\section{Join Class Reference}
\label{a00079}\index{BPMVE\_\-XPDL\_\-Library::Join@{BPMVE\_\-XPDL\_\-Library::Join}}


7.6.9.1. \doxyref{Join}{p.}{a00079} A join describes the semantics of an activity with Multiple incoming Transitions. Note that for BPMN diagrams this element is no longer necessary because for gateway activities the type is specified in the \doxyref{Route}{p.}{a00125} element AND for non-\/gateway activities the join behaviour is fixed as Exclusive. The Parallel (AND) join can be seen as a \char`\"{}rendezvous precondition\char`\"{} of the \doxyref{Activity}{p.}{a00002}; the activity is not initiated until the transition conditions on All incoming routes evaluate true. The Exclusive (XOR) join initiates the \doxyref{Activity}{p.}{a00002} when the transition conditions of any (One) of the incoming transitions evaluates true.  




Inheritance diagram for Join:

Collaboration diagram for Join:\subsection*{Properties}
\begin{DoxyCompactItemize}
\item 
override GatewayTypeEnum {\bf Type}\hspace{0.3cm}{\ttfamily  [get, set]}
\item 
override ExclusiveTypeEnum {\bf ExclusiveType}\hspace{0.3cm}{\ttfamily  [get, set]}
\item 
string {\bf IncomingCondition}\hspace{0.3cm}{\ttfamily  [get, set]}
\end{DoxyCompactItemize}


\subsection{Detailed Description}


Definition at line 19 of file Join.cs.



\subsection{Property Documentation}
\index{BPMVE\_\-XPDL\_\-Library::Join@{BPMVE\_\-XPDL\_\-Library::Join}!Type@{Type}}
\index{Type@{Type}!BPMVE_XPDL_Library::Join@{BPMVE\_\-XPDL\_\-Library::Join}}
\subsubsection[{Type}]{\setlength{\rightskip}{0pt plus 5cm}override GatewayTypeEnum Type\hspace{0.3cm}{\ttfamily  [get, set]}}\label{a00079_ab1c511e51ee3420460cd510b91be4097}


Specifies the join behavior of this activity. If specified, then for BPMN gateway activities this MUST match the GatewayType of the \doxyref{Route}{p.}{a00125} element. If specified for BPMN non-\/gateway activities then this MUST be ―Exclusive‖. Note that the enumerations XOR, OR AND AND are deprecated AND replaced by the new enumerations Exclusive, Inclusive AND Parallel respectively. It is recommended that modellers are capable of reading deprecated values but always write the new enumerations. Parallel (AND) \doxyref{Join}{p.}{a00079} of (All) concurrent threads within the process instance with incoming transitions To the activity: Synchronization is required. The number of threads To be synchronized might be dependent on the result of the conditions of previous AND split(s). Equivalent To BPMN ̳OR ̳ gateway merge logic. BPMN AND gateway merge logic requires All incoming transition threads To be synchronized, regardless of previous splits. Inclusive (OR) See above. Exclusive (XOR) \doxyref{Join}{p.}{a00079} for alternative threads: No synchronisation is required. COMPLEX This makes use of the attribute IncomingCondition (see below). 



Reimplemented from {\bf TransitionRestriction} \doxyref{}{p.}{a00149_a398716c4409e73579ac255a0bccd08e9}.



Definition at line 38 of file Join.cs.

\index{BPMVE\_\-XPDL\_\-Library::Join@{BPMVE\_\-XPDL\_\-Library::Join}!ExclusiveType@{ExclusiveType}}
\index{ExclusiveType@{ExclusiveType}!BPMVE_XPDL_Library::Join@{BPMVE\_\-XPDL\_\-Library::Join}}
\subsubsection[{ExclusiveType}]{\setlength{\rightskip}{0pt plus 5cm}override ExclusiveTypeEnum ExclusiveType\hspace{0.3cm}{\ttfamily  [get, set]}}\label{a00079_a56440fe6a9233965bb6c5362a35a7a5b}


Deprecated – join behaviour is identical for Exclusive Data-\/Base AND Exclusive Event-\/based gateways. 



Reimplemented from {\bf TransitionRestriction} \doxyref{}{p.}{a00149_ad927a062b19939c88f58a606847cc529}.



Definition at line 45 of file Join.cs.

\index{BPMVE\_\-XPDL\_\-Library::Join@{BPMVE\_\-XPDL\_\-Library::Join}!IncomingCondition@{IncomingCondition}}
\index{IncomingCondition@{IncomingCondition}!BPMVE_XPDL_Library::Join@{BPMVE\_\-XPDL\_\-Library::Join}}
\subsubsection[{IncomingCondition}]{\setlength{\rightskip}{0pt plus 5cm}string IncomingCondition\hspace{0.3cm}{\ttfamily  [get, set]}}\label{a00079_af7f79bfd9bd6294de94059b5dda0749a}


An expression that determines which of the incoming transitions/Sequence Flow are required for the Process To continue.. The expression may refer To process Data AND the status of the incoming Sequence Flow. For example, an expression may specify that any 3 out of 5 incoming Tokens will continue the Process. Another example would be an expression that specifies that a Token is required From Sequence Flow ―a” AND that a Token From either Sequence Flow ―b” OR ―c” is acceptable. However, the expression should be designed so that the Process is not stalled at that location. 



Definition at line 58 of file Join.cs.

